package com.zw.a.basic.a12.demo03_outputstream;

import java.io.FileOutputStream;
import java.io.IOException;

//案例: 演示字节输出流入门.
/*
    FileOutputStream:  普通的字节输出流, 以字节为单位, 往文件中写数据.
        构造方法:
            public FileOutputStream(String path);            接收字符串形式的路径
            public FileOutputStream(File path);              接收File对象形式的路径.
            public FileOutputStream(String path, boolean append);   如果传true, 表示往文件中追加数据, false: 覆盖.
            public FileOutputStream(File path, boolean append);     如果传true, 表示往文件中追加数据, false: 覆盖.
        成员方法:
            public void write(int b);       一次写一个字节
            public void write(byte[] bys);  一次写一个字节数组
            public void write(byte[] bys, int start, int len);  一次写一个字节数组的一部分
            public void close();        关闭流.
 */
public class Demo01 {
    public static void main(String[] args) throws IOException {
        //1.创建FileOutputStream对象, 关联指定的目的地文件.
        //解释: 往哪个文件中写数据, 哪个文件就叫: 目的地文件.
        //FileOutputStream fos = new FileOutputStream("day12/data/1.txt");    默认是覆盖
        FileOutputStream fos = new FileOutputStream("day12/data/1.txt", true);      //传true表示追加
        //FileOutputStream fos = new FileOutputStream(new File("day12/data/1.txt"));

        //2.往文件中写入字符'a', 'b', 'c'.
        //方式一:  一次写一个字节
        fos.write(97);
        fos.write(98);
        fos.write(99);

        //方式二: 一次写一个字节数组
        /*byte[] bys = {65, 66, 67};
        fos.write(bys);*/

        //方式三: 一次写一个字节数组的一部分
        /*byte[] bys = {65, 66, 67};
        fos.write(bys,1, 1);*/

        //3. 释放资源.
        fos.close();
    }
}
